高斯白噪声 python 您所在的位置:网站首页 python 高斯白噪声 高斯白噪声 python

高斯白噪声 python

2023-03-18 15:15| 来源: 网络整理| 查看: 265

numpy.random.normal()和numpy.random.randn()产生的都是高斯白噪声。

计算信噪比也就是简单的对信号的乘方求和而已,例如如果你有信号x和噪声n,

那么信噪比就是:

10*log10( sum(x**2) / sum(n**2))

根据以上信息可以编写如下程序。

wgn(x, snr)中x为信号,snr为信噪比,返回满足条件的高斯白噪声,只需要:

x += wgn(x, snr),即可以得到和matlab的awgn相同的效果。

程序中用hist()检查噪声是否是高斯分布,psd()检查功率谱密度是否为常数。

import numpy as np import pylab as pl def wgn(x, snr):     snr = 10**(snr/10.0)     xpower = np.sum(x**2)/len(x)     npower = xpower / snr     return np.random.randn(len(x)) * np.sqrt(npower) t = np.arange(0, 1000000) * 0.1 x = np.sin(t) n = wgn(x, 6) xn = x+n # 增加了6dBz信噪比噪声的信号 pl.subplot(211) pl.hist(n, bins=100, normed=True) pl.subplot(212) pl.psd(n) pl.show()

 

http://python.6.x6.nabble.com/CPyUG-td2742236.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有